2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב התחלתי (איבר ב ) = 0 ( קבוצת מצבים מקבלים (תת קבוצה של = = פונקציית מעברים 1
פונקציית מעברים פונקציית המעברים מוגדרת כך:. : כלומר, הפונקציה מקבלת כקלט מצב מתוך ואות מהא"ב ומחזירה מצב מתוך. מכיוון שהאוטומט דטרמיניסטי, לכל מצב q ולכל אות מוגדר מעבר יחיד. וקוראים את האות אז לדוגמא: : (,) הפונקציה מגדירה שאם נמצאים במצב עוברים למצב. תרשים של אוטומט q 0 המצבים מתוארים ע"י עיגול המכיל את שם המצב. פונקציית המעברים מתוארת ע"י חצים בין המצבים, כאשר בסמוך לחץ יופיעו אותיות המעבר. q a 0 q 1 המצבים המקבלים מסומנים ע"י עיגול נוסף מסביב למצב. מצב שאין ממנו מעבר אל מצב מקבל נקרא "מצב מלכודת" או "מצב דוחה". 2
אוטומט סופי דטרמיניסטי את פונקציית המעברים ניתן להגדיר ע"י טבלה. טבלת פונקציית המעברים: a b q 0 q 1 b a b דוגמא : q 1 q 2 q 2 = {, } = {q 0, q 1, q 2,, } q 0 = 0 = {3} אס"ד פשוט a b = { a, b} b a b q 0 q 1 q 1 q 2 q 2 aba: aaba: a 3
אס"ד פשוט = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: b a b a = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: אס"ד פשוט b a b a 4
אס"ד פשוט = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: b a b a אס"ד פשוט δ ainput b State q a b 0 q 1 0 1 q 1 q 2 1 2 q 2 2 3 q 3 4 q 4 = { a, b} aba: aaba: b a b a 5
אס"ד פשוט = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: b a b a = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: אס"ד פשוט b a b a 6
אס"ד פשוט = { a, b} a b q 0 q 1 q 1 q 2 q 2 aba: aaba: b a b a שפת האוטומט., F, =, = (,,) הרחבה של פונקציית המעברים למילים נגדיר : Σ מוגדר באופן רקורסיבי: שפת האוטומט השפה שהאוטומט מקבל. מילה Σ מתקבלת ע"י אס"ד אם ורק אם לכן השפה שאוטומט A מקבל היא () =, F () = {} () = 1 מהו גודל שפת האוטומט של האס"ד הפשוט בשקופית הקודמת? 7
אוטומט סופי דטרמניסטי נבנה אוטומט עבור שפת כל המילים באורך אי זוגי q 0 q 1 q 2 q 5 q 6 אינסופי! נשים לב שיש דמיון בין כל המצבים הזוגיים אם הקלט בהמשך הוא אי זוגי, אז המילה בשפה, ואם הקלט זוגי- המילה לא בשפה. כמו כן, כל המצבים האי זוגיים דומים. = { a, b} בנייה יעילה של אוטומט a q 2 נבנה אוטומט לשפת כל המילים שמתחילות ברישא.'aa' q 0 b a q 1 b b a q 5 q 6 אפשר לבנות מסלול נפרד לכל אחת מהרישות האפשריות. זהו אס"ד תקני, ושפת האוטומט היא כנדרש. אבל, זה לא יעיל! אלו מצבים ניתן לצמצם? 8
= { a, b} בנייה יעילה של אוטומט q 0 a q 1 b a q 2 מצבי מלכודת תמיד אפשר לצמצם למצב אחד. (למה?) b שפת כל המילים שמתחילות ברישא.'aa' = { a, b} בנייה יעילה של אוטומט a q 2 a q 1 q 0 b b שפת כל המילים שמתחילות ברישא בהמשך הקורס נגדיר באופן פורמאלי. 'aa' שקילות של מצבים. 9
שפה רגולרית שפה L הינה רגולרית אם ורק אם קיים אוטומט סופי דטרמיניסטי A המקיים L(A)= L תרגילים בנה אוטומט דטרמיניסטי סופי לשפות הבאות: 10
פתרונות 11
דוגמא מתקדמת = {, } פתרון לא נכון! איפה הטעות?,b q 0 q 1 q 2 האם המילה baaa בשפה? 12
דוגמא מתקדמת = {, } נכון פתרון בדיקת נכונות של אוטומט הוכחה פורמלית היא לעיתים ארוכה ומורכבת. במקרים שלא נדרשים להוכחה פורמלית, ניתן להריץ על האוטומט מספר דוגמאות בכדי להבטיח סבירות גבוהה לנכונות האוטומט. אך יש לשים לב שלא מספיק לבדוק שהאוטומט מקבל את כל הקלטים בשפה, צריך גם לוודא שהאוטומט לא מקבל מילים שאינם בשפה. בהמשך הקורס נלמד משפט המתייחס למספר המינימלי של מצבים באוטומט. 13
משפט הסגירות L 1 בהתאמה., L 2 A 1 אס"דים שמקבלים את השפות, A 2 L 1 שפות רגולריות, ויהיו, L 2 תהיינה Q 2 Q 1 A 2 ונניח כי Q -קבוצת 2 המצבים של, A 1 ו Q 1 קבוצת המצבים של תהיינה משפט: קיים אס"ד A המקיים L(A)= L(A 2 ) L(A 1 ) L(A) ו L(A 1 באופן דומה, קיים אס"ד עבור כל אחת מהפעולות הבינאריות האחרות על ) מכאן נובע משפט הסגירות: השפות הרגולריות סגורות תחת פעולות בינאריות. האלגוריתם לבניית אוטומט מכפלה האוטומט שנבנה עבור פעולות בינאריות של שפות רגולריות מכונה "אוטומט מכפלה". נשתמש באלגוריתם הבא: 1.מגדירים קבוצת מצבים חדשה ושל (A2 קרטזית של המצבים של A1 (מכפלה =.2 המצב ההתחלתי של האוטומט החדש מורכב משני המצבים ההתחלתיים : ) 0 = ( 0,. 3 עבור כל אות בא"ב וכל זוג מצבים (, ) בונים את פונקציית המעברים באופן הבא: בודקים בפונקציית המעברים של האוטומט הראשון לאיזה מצב מגיעים ממצב, ובפונקציית המעברים של האוטומט השני לאיזה מצב מגיעים ממצב. מגדירים את המעבר של האות באוטומט המכפלה להיות הזוג המכיל את שני המצבים שאליהם הגענו. - פונקציית המעברים של A1 אם : (,) ו - פונקציית המעברים של אוטומט המכפלה : (,) אז, ) : ((,),) ( - פונקציית המעברים של A2 14
המשך האלגוריתם לבניית אוטומט מכפלה 4. עבור חיתוך, מגדירים כמצבים מקבלים את הזוגות ששני האיברים. Q 1 Q 2 או שלהם שייכים למצבים המקבלים של עבור איחוד, המצבים המקבלים יהיו כל זוגות האיברים שלפחות אחד. Q 1 Q 2 או מהם שייך למצבים המקבלים של באופן דומה מגדירים קבוצת מצבים מקבלים עבור שאר הפעולות הבינריות. באופן פורמאלי 15
דוגמא לבניית אוטומט מכפלה עבור האוטומטים הבאים נרצה לבנות אוטומט מכפלה לאיחוד וחיתוך: Σ Σ p 0 p 1 = Σ דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p q 0, p 0 16
דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p 3. פונקציית המעברים: q 0, p 0 q 1, p 1 (q 0, p 0 ) (q 1,p 1 ) Σ דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p 3. פונקציית המעברים: Σ (q 0, p 0 ) (q 1,p 1 ) (q 1,p 1 ) (q 2,p 1 ) q 0, p 0 q 1, p 1 q 2, p 1 17
דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p 3. פונקציית המעברים: q 0, p 0 q 1, p 1 q 2, p 1 Σ (q 0, p 0 ) (q 1,p 1 ) (q 1,p 1 ) (q 2,p 1 ) (q 2,p 1 ) (q 1,p 1 ) דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p 3. פונקציית המעברים: חיתוך q 0, p 0 q 1, p 1 q 2, p 1 (q 0, p 0 ) (q 1,p 1 ) (q 1,p 1 ) (q 2,p 1 ) (q 2,p 1 ) (q 1,p 1 ) Σ 4. מצבים מקבלים: עבור חיתוך )} 1 = { (q 1, p 18
דוגמא לבניית אוטומט מכפלה 1. נגדיר את קבוצת המצבים החדשה Q: = { (q 0, p 0 ), q 0,p, q 1 1, p 0, (q 1,p 1 ), q 2, p 0,(q 2,p 1 ) } 2.המצב ההתחלתי הוא : ) 0 (q 0, p 3. פונקציית המעברים: איחוד q 0, p 0 q 1, p 1 q 2, p 1 (q 0, p 0 ) (q 1,p 1 ) (q 1,p 1 ) (q 2,p 1 ) (q 2,p 1 ) (q 1,p 1 ) Σ 4. מצבים מקבלים: עבור איחוד )} 1 = { (q 1, p 1 ),(q 2, p 19